var $jscomp = $jscomp || {}
$jscomp.scope = {}
$jscomp.arrayIteratorImpl = function (h) {
  var n = 0
  return function () {
    return n < h.length ? { done: !1, value: h[n++] } : { done: !0 }
  }
}
$jscomp.arrayIterator = function (h) {
  return { next: $jscomp.arrayIteratorImpl(h) }
}
$jscomp.makeIterator = function (h) {
  var n = 'undefined' != typeof Symbol && Symbol.iterator && h[Symbol.iterator]
  return n ? n.call(h) : $jscomp.arrayIterator(h)
}
$jscomp.ASSUME_ES5 = !1
$jscomp.ASSUME_NO_NATIVE_MAP = !1
$jscomp.ASSUME_NO_NATIVE_SET = !1
$jscomp.SIMPLE_FROUND_POLYFILL = !1
$jscomp.ISOLATE_POLYFILLS = !1
$jscomp.FORCE_POLYFILL_PROMISE = !1
$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION = !1
$jscomp.getGlobal = function (h) {
  h = [
    'object' == typeof globalThis && globalThis,
    h,
    'object' == typeof window && window,
    'object' == typeof self && self,
    'object' == typeof global && global,
  ]
  for (var n = 0; n < h.length; ++n) {
    var k = h[n]
    if (k && k.Math == Math) return k
  }
  throw Error('Cannot find global object')
}
$jscomp.global = $jscomp.getGlobal(this)
$jscomp.defineProperty =
  $jscomp.ASSUME_ES5 || 'function' == typeof Object.defineProperties
    ? Object.defineProperty
    : function (h, n, k) {
        if (h == Array.prototype || h == Object.prototype) return h
        h[n] = k.value
        return h
      }
$jscomp.IS_SYMBOL_NATIVE =
  'function' === typeof Symbol && 'symbol' === typeof Symbol('x')
$jscomp.TRUST_ES6_POLYFILLS =
  !$jscomp.ISOLATE_POLYFILLS || $jscomp.IS_SYMBOL_NATIVE
$jscomp.polyfills = {}
$jscomp.propertyToPolyfillSymbol = {}
$jscomp.POLYFILL_PREFIX = '$jscp$'
var $jscomp$lookupPolyfilledValue = function (h, n) {
  var k = $jscomp.propertyToPolyfillSymbol[n]
  if (null == k) return h[n]
  k = h[k]
  return void 0 !== k ? k : h[n]
}
$jscomp.polyfill = function (h, n, k, p) {
  n &&
    ($jscomp.ISOLATE_POLYFILLS
      ? $jscomp.polyfillIsolated(h, n, k, p)
      : $jscomp.polyfillUnisolated(h, n, k, p))
}
$jscomp.polyfillUnisolated = function (h, n, k, p) {
  k = $jscomp.global
  h = h.split('.')
  for (p = 0; p < h.length - 1; p++) {
    var l = h[p]
    if (!(l in k)) return
    k = k[l]
  }
  h = h[h.length - 1]
  p = k[h]
  n = n(p)
  n != p &&
    null != n &&
    $jscomp.defineProperty(k, h, { configurable: !0, writable: !0, value: n })
}
$jscomp.polyfillIsolated = function (h, n, k, p) {
  var l = h.split('.')
  h = 1 === l.length
  p = l[0]
  p = !h && p in $jscomp.polyfills ? $jscomp.polyfills : $jscomp.global
  for (var y = 0; y < l.length - 1; y++) {
    var f = l[y]
    if (!(f in p)) return
    p = p[f]
  }
  l = l[l.length - 1]
  k = $jscomp.IS_SYMBOL_NATIVE && 'es6' === k ? p[l] : null
  n = n(k)
  null != n &&
    (h
      ? $jscomp.defineProperty($jscomp.polyfills, l, {
          configurable: !0,
          writable: !0,
          value: n,
        })
      : n !== k &&
        (void 0 === $jscomp.propertyToPolyfillSymbol[l] &&
          ((k = (1e9 * Math.random()) >>> 0),
          ($jscomp.propertyToPolyfillSymbol[l] = $jscomp.IS_SYMBOL_NATIVE
            ? $jscomp.global.Symbol(l)
            : $jscomp.POLYFILL_PREFIX + k + '$' + l)),
        $jscomp.defineProperty(p, $jscomp.propertyToPolyfillSymbol[l], {
          configurable: !0,
          writable: !0,
          value: n,
        })))
}
$jscomp.polyfill(
  'Promise',
  function (h) {
    function n() {
      this.batch_ = null
    }
    function k(f) {
      return f instanceof l
        ? f
        : new l(function (q, u) {
            q(f)
          })
    }
    if (
      h &&
      (!(
        $jscomp.FORCE_POLYFILL_PROMISE ||
        ($jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION &&
          'undefined' === typeof $jscomp.global.PromiseRejectionEvent)
      ) ||
        !$jscomp.global.Promise ||
        -1 === $jscomp.global.Promise.toString().indexOf('[native code]'))
    )
      return h
    n.prototype.asyncExecute = function (f) {
      if (null == this.batch_) {
        this.batch_ = []
        var q = this
        this.asyncExecuteFunction(function () {
          q.executeBatch_()
        })
      }
      this.batch_.push(f)
    }
    var p = $jscomp.global.setTimeout
    n.prototype.asyncExecuteFunction = function (f) {
      p(f, 0)
    }
    n.prototype.executeBatch_ = function () {
      for (; this.batch_ && this.batch_.length; ) {
        var f = this.batch_
        this.batch_ = []
        for (var q = 0; q < f.length; ++q) {
          var u = f[q]
          f[q] = null
          try {
            u()
          } catch (A) {
            this.asyncThrow_(A)
          }
        }
      }
      this.batch_ = null
    }
    n.prototype.asyncThrow_ = function (f) {
      this.asyncExecuteFunction(function () {
        throw f
      })
    }
    var l = function (f) {
      this.state_ = 0
      this.result_ = void 0
      this.onSettledCallbacks_ = []
      this.isRejectionHandled_ = !1
      var q = this.createResolveAndReject_()
      try {
        f(q.resolve, q.reject)
      } catch (u) {
        q.reject(u)
      }
    }
    l.prototype.createResolveAndReject_ = function () {
      function f(A) {
        return function (F) {
          u || ((u = !0), A.call(q, F))
        }
      }
      var q = this,
        u = !1
      return { resolve: f(this.resolveTo_), reject: f(this.reject_) }
    }
    l.prototype.resolveTo_ = function (f) {
      if (f === this)
        this.reject_(new TypeError('A Promise cannot resolve to itself'))
      else if (f instanceof l) this.settleSameAsPromise_(f)
      else {
        a: switch (typeof f) {
          case 'object':
            var q = null != f
            break a
          case 'function':
            q = !0
            break a
          default:
            q = !1
        }
        q ? this.resolveToNonPromiseObj_(f) : this.fulfill_(f)
      }
    }
    l.prototype.resolveToNonPromiseObj_ = function (f) {
      var q = void 0
      try {
        q = f.then
      } catch (u) {
        this.reject_(u)
        return
      }
      'function' == typeof q
        ? this.settleSameAsThenable_(q, f)
        : this.fulfill_(f)
    }
    l.prototype.reject_ = function (f) {
      this.settle_(2, f)
    }
    l.prototype.fulfill_ = function (f) {
      this.settle_(1, f)
    }
    l.prototype.settle_ = function (f, q) {
      if (0 != this.state_)
        throw Error(
          'Cannot settle(' +
            f +
            ', ' +
            q +
            '): Promise already settled in state' +
            this.state_,
        )
      this.state_ = f
      this.result_ = q
      2 === this.state_ && this.scheduleUnhandledRejectionCheck_()
      this.executeOnSettledCallbacks_()
    }
    l.prototype.scheduleUnhandledRejectionCheck_ = function () {
      var f = this
      p(function () {
        if (f.notifyUnhandledRejection_()) {
          var q = $jscomp.global.console
          'undefined' !== typeof q && q.error(f.result_)
        }
      }, 1)
    }
    l.prototype.notifyUnhandledRejection_ = function () {
      if (this.isRejectionHandled_) return !1
      var f = $jscomp.global.CustomEvent,
        q = $jscomp.global.Event,
        u = $jscomp.global.dispatchEvent
      if ('undefined' === typeof u) return !0
      'function' === typeof f
        ? (f = new f('unhandledrejection', { cancelable: !0 }))
        : 'function' === typeof q
          ? (f = new q('unhandledrejection', { cancelable: !0 }))
          : ((f = $jscomp.global.document.createEvent('CustomEvent')),
            f.initCustomEvent('unhandledrejection', !1, !0, f))
      f.promise = this
      f.reason = this.result_
      return u(f)
    }
    l.prototype.executeOnSettledCallbacks_ = function () {
      if (null != this.onSettledCallbacks_) {
        for (var f = 0; f < this.onSettledCallbacks_.length; ++f)
          y.asyncExecute(this.onSettledCallbacks_[f])
        this.onSettledCallbacks_ = null
      }
    }
    var y = new n()
    l.prototype.settleSameAsPromise_ = function (f) {
      var q = this.createResolveAndReject_()
      f.callWhenSettled_(q.resolve, q.reject)
    }
    l.prototype.settleSameAsThenable_ = function (f, q) {
      var u = this.createResolveAndReject_()
      try {
        f.call(q, u.resolve, u.reject)
      } catch (A) {
        u.reject(A)
      }
    }
    l.prototype.then = function (f, q) {
      function u(w, B) {
        return 'function' == typeof w
          ? function (R) {
              try {
                A(w(R))
              } catch (Z) {
                F(Z)
              }
            }
          : B
      }
      var A,
        F,
        v = new l(function (w, B) {
          A = w
          F = B
        })
      this.callWhenSettled_(u(f, A), u(q, F))
      return v
    }
    l.prototype.catch = function (f) {
      return this.then(void 0, f)
    }
    l.prototype.callWhenSettled_ = function (f, q) {
      function u() {
        switch (A.state_) {
          case 1:
            f(A.result_)
            break
          case 2:
            q(A.result_)
            break
          default:
            throw Error('Unexpected state: ' + A.state_)
        }
      }
      var A = this
      null == this.onSettledCallbacks_
        ? y.asyncExecute(u)
        : this.onSettledCallbacks_.push(u)
      this.isRejectionHandled_ = !0
    }
    l.resolve = k
    l.reject = function (f) {
      return new l(function (q, u) {
        u(f)
      })
    }
    l.race = function (f) {
      return new l(function (q, u) {
        for (
          var A = $jscomp.makeIterator(f), F = A.next();
          !F.done;
          F = A.next()
        )
          k(F.value).callWhenSettled_(q, u)
      })
    }
    l.all = function (f) {
      var q = $jscomp.makeIterator(f),
        u = q.next()
      return u.done
        ? k([])
        : new l(function (A, F) {
            function v(R) {
              return function (Z) {
                w[R] = Z
                B--
                0 == B && A(w)
              }
            }
            var w = [],
              B = 0
            do
              w.push(void 0),
                B++,
                k(u.value).callWhenSettled_(v(w.length - 1), F),
                (u = q.next())
            while (!u.done)
          })
    }
    return l
  },
  'es6',
  'es3',
)
$jscomp.owns = function (h, n) {
  return Object.prototype.hasOwnProperty.call(h, n)
}
$jscomp.assign =
  $jscomp.TRUST_ES6_POLYFILLS && 'function' == typeof Object.assign
    ? Object.assign
    : function (h, n) {
        for (var k = 1; k < arguments.length; k++) {
          var p = arguments[k]
          if (p) for (var l in p) $jscomp.owns(p, l) && (h[l] = p[l])
        }
        return h
      }
$jscomp.polyfill(
  'Object.assign',
  function (h) {
    return h || $jscomp.assign
  },
  'es6',
  'es3',
)
$jscomp.checkStringArgs = function (h, n, k) {
  if (null == h)
    throw new TypeError(
      "The 'this' value for String.prototype." +
        k +
        ' must not be null or undefined',
    )
  if (n instanceof RegExp)
    throw new TypeError(
      'First argument to String.prototype.' +
        k +
        ' must not be a regular expression',
    )
  return h + ''
}
$jscomp.polyfill(
  'String.prototype.startsWith',
  function (h) {
    return h
      ? h
      : function (n, k) {
          var p = $jscomp.checkStringArgs(this, n, 'startsWith')
          n += ''
          var l = p.length,
            y = n.length
          k = Math.max(0, Math.min(k | 0, p.length))
          for (var f = 0; f < y && k < l; ) if (p[k++] != n[f++]) return !1
          return f >= y
        }
  },
  'es6',
  'es3',
)
$jscomp.polyfill(
  'Array.prototype.copyWithin',
  function (h) {
    function n(k) {
      k = Number(k)
      return Infinity === k || -Infinity === k ? k : k | 0
    }
    return h
      ? h
      : function (k, p, l) {
          var y = this.length
          k = n(k)
          p = n(p)
          l = void 0 === l ? y : n(l)
          k = 0 > k ? Math.max(y + k, 0) : Math.min(k, y)
          p = 0 > p ? Math.max(y + p, 0) : Math.min(p, y)
          l = 0 > l ? Math.max(y + l, 0) : Math.min(l, y)
          if (k < p)
            for (; p < l; )
              p in this ? (this[k++] = this[p++]) : (delete this[k++], p++)
          else
            for (l = Math.min(l, y + p - k), k += l - p; l > p; )
              --l in this ? (this[--k] = this[l]) : delete this[--k]
          return this
        }
  },
  'es6',
  'es3',
)
$jscomp.typedArrayCopyWithin = function (h) {
  return h ? h : Array.prototype.copyWithin
}
$jscomp.polyfill(
  'Int8Array.prototype.copyWithin',
  $jscomp.typedArrayCopyWithin,
  'es6',
  'es5',
)
$jscomp.polyfill(
  'Uint8Array.prototype.copyWithin',
  $jscomp.typedArrayCopyWithin,
  'es6',
  'es5',
)
$jscomp.polyfill(
  'Uint8ClampedArray.prototype.copyWithin',
  $jscomp.typedArrayCopyWithin,
  'es6',
  'es5',
)
$jscomp.polyfill(
  'Int16Array.prototype.copyWithin',
  $jscomp.typedArrayCopyWithin,
  'es6',
  'es5',
)
$jscomp.polyfill(
  'Uint16Array.prototype.copyWithin',
  $jscomp.typedArrayCopyWithin,
  'es6',
  'es5',
)
$jscomp.polyfill(
  'Int32Array.prototype.copyWithin',
  $jscomp.typedArrayCopyWithin,
  'es6',
  'es5',
)
$jscomp.polyfill(
  'Uint32Array.prototype.copyWithin',
  $jscomp.typedArrayCopyWithin,
  'es6',
  'es5',
)
$jscomp.polyfill(
  'Float32Array.prototype.copyWithin',
  $jscomp.typedArrayCopyWithin,
  'es6',
  'es5',
)
$jscomp.polyfill(
  'Float64Array.prototype.copyWithin',
  $jscomp.typedArrayCopyWithin,
  'es6',
  'es5',
)
var DracoDecoderModule = (function () {
  var h =
    'undefined' !== typeof document && document.currentScript
      ? document.currentScript.src
      : void 0
  'undefined' !== typeof __filename && (h = h || __filename)
  return function (n) {
    function k(e) {
      return a.locateFile ? a.locateFile(e, U) : U + e
    }
    function p(e, b) {
      if (e) {
        var c = ia
        var d = e + b
        for (b = e; c[b] && !(b >= d); ) ++b
        if (16 < b - e && c.buffer && ra) c = ra.decode(c.subarray(e, b))
        else {
          for (d = ''; e < b; ) {
            var g = c[e++]
            if (g & 128) {
              var t = c[e++] & 63
              if (192 == (g & 224))
                d += String.fromCharCode(((g & 31) << 6) | t)
              else {
                var aa = c[e++] & 63
                g =
                  224 == (g & 240)
                    ? ((g & 15) << 12) | (t << 6) | aa
                    : ((g & 7) << 18) | (t << 12) | (aa << 6) | (c[e++] & 63)
                65536 > g
                  ? (d += String.fromCharCode(g))
                  : ((g -= 65536),
                    (d += String.fromCharCode(
                      55296 | (g >> 10),
                      56320 | (g & 1023),
                    )))
              }
            } else d += String.fromCharCode(g)
          }
          c = d
        }
      } else c = ''
      return c
    }
    function l() {
      var e = ja.buffer
      a.HEAP8 = W = new Int8Array(e)
      a.HEAP16 = new Int16Array(e)
      a.HEAP32 = ca = new Int32Array(e)
      a.HEAPU8 = ia = new Uint8Array(e)
      a.HEAPU16 = new Uint16Array(e)
      a.HEAPU32 = Y = new Uint32Array(e)
      a.HEAPF32 = new Float32Array(e)
      a.HEAPF64 = new Float64Array(e)
    }
    function y(e) {
      if (a.onAbort) a.onAbort(e)
      e = 'Aborted(' + e + ')'
      da(e)
      sa = !0
      e = new WebAssembly.RuntimeError(
        e + '. Build with -sASSERTIONS for more info.',
      )
      ka(e)
      throw e
    }
    function f(e) {
      try {
        if (e == P && ea) return new Uint8Array(ea)
        if (ma) return ma(e)
        throw 'both async and sync fetching of the wasm failed'
      } catch (b) {
        y(b)
      }
    }
    function q() {
      if (!ea && (ta || fa)) {
        if ('function' == typeof fetch && !P.startsWith('file://'))
          return fetch(P, { credentials: 'same-origin' })
            .then(function (e) {
              if (!e.ok) throw "failed to load wasm binary file at '" + P + "'"
              return e.arrayBuffer()
            })
            .catch(function () {
              return f(P)
            })
        if (na)
          return new Promise(function (e, b) {
            na(
              P,
              function (c) {
                e(new Uint8Array(c))
              },
              b,
            )
          })
      }
      return Promise.resolve().then(function () {
        return f(P)
      })
    }
    function u(e) {
      for (; 0 < e.length; ) e.shift()(a)
    }
    function A(e) {
      this.excPtr = e
      this.ptr = e - 24
      this.set_type = function (b) {
        Y[(this.ptr + 4) >> 2] = b
      }
      this.get_type = function () {
        return Y[(this.ptr + 4) >> 2]
      }
      this.set_destructor = function (b) {
        Y[(this.ptr + 8) >> 2] = b
      }
      this.get_destructor = function () {
        return Y[(this.ptr + 8) >> 2]
      }
      this.set_refcount = function (b) {
        ca[this.ptr >> 2] = b
      }
      this.set_caught = function (b) {
        W[(this.ptr + 12) >> 0] = b ? 1 : 0
      }
      this.get_caught = function () {
        return 0 != W[(this.ptr + 12) >> 0]
      }
      this.set_rethrown = function (b) {
        W[(this.ptr + 13) >> 0] = b ? 1 : 0
      }
      this.get_rethrown = function () {
        return 0 != W[(this.ptr + 13) >> 0]
      }
      this.init = function (b, c) {
        this.set_adjusted_ptr(0)
        this.set_type(b)
        this.set_destructor(c)
        this.set_refcount(0)
        this.set_caught(!1)
        this.set_rethrown(!1)
      }
      this.add_ref = function () {
        ca[this.ptr >> 2] += 1
      }
      this.release_ref = function () {
        var b = ca[this.ptr >> 2]
        ca[this.ptr >> 2] = b - 1
        return 1 === b
      }
      this.set_adjusted_ptr = function (b) {
        Y[(this.ptr + 16) >> 2] = b
      }
      this.get_adjusted_ptr = function () {
        return Y[(this.ptr + 16) >> 2]
      }
      this.get_exception_ptr = function () {
        if (ua(this.get_type())) return Y[this.excPtr >> 2]
        var b = this.get_adjusted_ptr()
        return 0 !== b ? b : this.excPtr
      }
    }
    function F() {
      function e() {
        if (!la && ((la = !0), (a.calledRun = !0), !sa)) {
          va = !0
          u(oa)
          wa(a)
          if (a.onRuntimeInitialized) a.onRuntimeInitialized()
          if (a.postRun)
            for (
              'function' == typeof a.postRun && (a.postRun = [a.postRun]);
              a.postRun.length;

            )
              xa.unshift(a.postRun.shift())
          u(xa)
        }
      }
      if (!(0 < ba)) {
        if (a.preRun)
          for (
            'function' == typeof a.preRun && (a.preRun = [a.preRun]);
            a.preRun.length;

          )
            ya.unshift(a.preRun.shift())
        u(ya)
        0 < ba ||
          (a.setStatus
            ? (a.setStatus('Running...'),
              setTimeout(function () {
                setTimeout(function () {
                  a.setStatus('')
                }, 1)
                e()
              }, 1))
            : e())
      }
    }
    function v() {}
    function w(e) {
      return (e || v).__cache__
    }
    function B(e, b) {
      var c = w(b),
        d = c[e]
      if (d) return d
      d = Object.create((b || v).prototype)
      d.ptr = e
      return (c[e] = d)
    }
    function R(e) {
      if ('string' === typeof e) {
        for (var b = 0, c = 0; c < e.length; ++c) {
          var d = e.charCodeAt(c)
          127 >= d
            ? b++
            : 2047 >= d
              ? (b += 2)
              : 55296 <= d && 57343 >= d
                ? ((b += 4), ++c)
                : (b += 3)
        }
        b = Array(b + 1)
        c = 0
        d = b.length
        if (0 < d) {
          d = c + d - 1
          for (var g = 0; g < e.length; ++g) {
            var t = e.charCodeAt(g)
            if (55296 <= t && 57343 >= t) {
              var aa = e.charCodeAt(++g)
              t = (65536 + ((t & 1023) << 10)) | (aa & 1023)
            }
            if (127 >= t) {
              if (c >= d) break
              b[c++] = t
            } else {
              if (2047 >= t) {
                if (c + 1 >= d) break
                b[c++] = 192 | (t >> 6)
              } else {
                if (65535 >= t) {
                  if (c + 2 >= d) break
                  b[c++] = 224 | (t >> 12)
                } else {
                  if (c + 3 >= d) break
                  b[c++] = 240 | (t >> 18)
                  b[c++] = 128 | ((t >> 12) & 63)
                }
                b[c++] = 128 | ((t >> 6) & 63)
              }
              b[c++] = 128 | (t & 63)
            }
          }
          b[c] = 0
        }
        e = r.alloc(b, W)
        r.copy(b, W, e)
        return e
      }
      return e
    }
    function Z(e) {
      if ('object' === typeof e) {
        var b = r.alloc(e, W)
        r.copy(e, W, b)
        return b
      }
      return e
    }
    function X() {
      throw 'cannot construct a VoidPtr, no constructor in IDL'
    }
    function S() {
      this.ptr = za()
      w(S)[this.ptr] = this
    }
    function Q() {
      this.ptr = Aa()
      w(Q)[this.ptr] = this
    }
    function V() {
      this.ptr = Ba()
      w(V)[this.ptr] = this
    }
    function x() {
      this.ptr = Ca()
      w(x)[this.ptr] = this
    }
    function D() {
      this.ptr = Da()
      w(D)[this.ptr] = this
    }
    function G() {
      this.ptr = Ea()
      w(G)[this.ptr] = this
    }
    function H() {
      this.ptr = Fa()
      w(H)[this.ptr] = this
    }
    function E() {
      this.ptr = Ga()
      w(E)[this.ptr] = this
    }
    function T() {
      this.ptr = Ha()
      w(T)[this.ptr] = this
    }
    function C() {
      throw 'cannot construct a Status, no constructor in IDL'
    }
    function I() {
      this.ptr = Ia()
      w(I)[this.ptr] = this
    }
    function J() {
      this.ptr = Ja()
      w(J)[this.ptr] = this
    }
    function K() {
      this.ptr = Ka()
      w(K)[this.ptr] = this
    }
    function L() {
      this.ptr = La()
      w(L)[this.ptr] = this
    }
    function M() {
      this.ptr = Ma()
      w(M)[this.ptr] = this
    }
    function N() {
      this.ptr = Na()
      w(N)[this.ptr] = this
    }
    function O() {
      this.ptr = Oa()
      w(O)[this.ptr] = this
    }
    function z() {
      this.ptr = Pa()
      w(z)[this.ptr] = this
    }
    function m() {
      this.ptr = Qa()
      w(m)[this.ptr] = this
    }
    n = void 0 === n ? {} : n
    var a = 'undefined' != typeof n ? n : {},
      wa,
      ka
    a.ready = new Promise(function (e, b) {
      wa = e
      ka = b
    })
    var Ra = !1,
      Sa = !1
    a.onRuntimeInitialized = function () {
      Ra = !0
      if (Sa && 'function' === typeof a.onModuleLoaded) a.onModuleLoaded(a)
    }
    a.onModuleParsed = function () {
      Sa = !0
      if (Ra && 'function' === typeof a.onModuleLoaded) a.onModuleLoaded(a)
    }
    a.isVersionSupported = function (e) {
      if ('string' !== typeof e) return !1
      e = e.split('.')
      return 2 > e.length || 3 < e.length
        ? !1
        : 1 == e[0] && 0 <= e[1] && 5 >= e[1]
          ? !0
          : 0 != e[0] || 10 < e[1]
            ? !1
            : !0
    }
    var Ta = Object.assign({}, a),
      ta = 'object' == typeof window,
      fa = 'function' == typeof importScripts,
      Ua =
        'object' == typeof process &&
        'object' == typeof process.versions &&
        'string' == typeof process.versions.node,
      U = ''
    if (Ua) {
      var Va = require('fs'),
        pa = require('path')
      U = fa ? pa.dirname(U) + '/' : __dirname + '/'
      var Wa = function (e, b) {
        e = e.startsWith('file://') ? new URL(e) : pa.normalize(e)
        return Va.readFileSync(e, b ? void 0 : 'utf8')
      }
      var ma = function (e) {
        e = Wa(e, !0)
        e.buffer || (e = new Uint8Array(e))
        return e
      }
      var na = function (e, b, c) {
        e = e.startsWith('file://') ? new URL(e) : pa.normalize(e)
        Va.readFile(e, function (d, g) {
          d ? c(d) : b(g.buffer)
        })
      }
      1 < process.argv.length && process.argv[1].replace(/\\/g, '/')
      process.argv.slice(2)
      a.inspect = function () {
        return '[Emscripten Module object]'
      }
    } else if (ta || fa)
      fa
        ? (U = self.location.href)
        : 'undefined' != typeof document &&
          document.currentScript &&
          (U = document.currentScript.src),
        h && (U = h),
        (U =
          0 !== U.indexOf('blob:')
            ? U.substr(0, U.replace(/[?#].*/, '').lastIndexOf('/') + 1)
            : ''),
        (Wa = function (e) {
          var b = new XMLHttpRequest()
          b.open('GET', e, !1)
          b.send(null)
          return b.responseText
        }),
        fa &&
          (ma = function (e) {
            var b = new XMLHttpRequest()
            b.open('GET', e, !1)
            b.responseType = 'arraybuffer'
            b.send(null)
            return new Uint8Array(b.response)
          }),
        (na = function (e, b, c) {
          var d = new XMLHttpRequest()
          d.open('GET', e, !0)
          d.responseType = 'arraybuffer'
          d.onload = function () {
            200 == d.status || (0 == d.status && d.response)
              ? b(d.response)
              : c()
          }
          d.onerror = c
          d.send(null)
        })
    a.print || console.log.bind(console)
    var da = a.printErr || console.warn.bind(console)
    Object.assign(a, Ta)
    Ta = null
    var ea
    a.wasmBinary && (ea = a.wasmBinary)
    'object' != typeof WebAssembly && y('no native wasm support detected')
    var ja,
      sa = !1,
      ra = 'undefined' != typeof TextDecoder ? new TextDecoder('utf8') : void 0,
      W,
      ia,
      ca,
      Y,
      ya = [],
      oa = [],
      xa = [],
      va = !1,
      ba = 0,
      qa = null,
      ha = null
    var P = 'draco_decoder_gltf.wasm'
    P.startsWith('data:application/octet-stream;base64,') || (P = k(P))
    var pd = 0,
      qd = {
        b: function (e, b, c) {
          new A(e).init(b, c)
          pd++
          throw e
        },
        a: function () {
          y('')
        },
        d: function (e, b, c) {
          ia.copyWithin(e, b, b + c)
        },
        c: function (e) {
          var b = ia.length
          e >>>= 0
          if (2147483648 < e) return !1
          for (var c = 1; 4 >= c; c *= 2) {
            var d = b * (1 + 0.2 / c)
            d = Math.min(d, e + 100663296)
            var g = Math
            d = Math.max(e, d)
            g = g.min.call(g, 2147483648, d + ((65536 - (d % 65536)) % 65536))
            a: {
              d = ja.buffer
              try {
                ja.grow((g - d.byteLength + 65535) >>> 16)
                l()
                var t = 1
                break a
              } catch (aa) {}
              t = void 0
            }
            if (t) return !0
          }
          return !1
        },
      }
    ;(function () {
      function e(g, t) {
        a.asm = g.exports
        ja = a.asm.e
        l()
        oa.unshift(a.asm.f)
        ba--
        a.monitorRunDependencies && a.monitorRunDependencies(ba)
        0 == ba &&
          (null !== qa && (clearInterval(qa), (qa = null)),
          ha && ((g = ha), (ha = null), g()))
      }
      function b(g) {
        e(g.instance)
      }
      function c(g) {
        return q()
          .then(function (t) {
            return WebAssembly.instantiate(t, d)
          })
          .then(function (t) {
            return t
          })
          .then(g, function (t) {
            da('failed to asynchronously prepare wasm: ' + t)
            y(t)
          })
      }
      var d = { a: qd }
      ba++
      a.monitorRunDependencies && a.monitorRunDependencies(ba)
      if (a.instantiateWasm)
        try {
          return a.instantiateWasm(d, e)
        } catch (g) {
          da('Module.instantiateWasm callback failed with error: ' + g), ka(g)
        }
      ;(function () {
        return ea ||
          'function' != typeof WebAssembly.instantiateStreaming ||
          P.startsWith('data:application/octet-stream;base64,') ||
          P.startsWith('file://') ||
          Ua ||
          'function' != typeof fetch
          ? c(b)
          : fetch(P, { credentials: 'same-origin' }).then(function (g) {
              return WebAssembly.instantiateStreaming(g, d).then(
                b,
                function (t) {
                  da('wasm streaming compile failed: ' + t)
                  da('falling back to ArrayBuffer instantiation')
                  return c(b)
                },
              )
            })
      })().catch(ka)
      return {}
    })()
    var Xa = (a._emscripten_bind_VoidPtr___destroy___0 = function () {
        return (Xa = a._emscripten_bind_VoidPtr___destroy___0 = a.asm.h).apply(
          null,
          arguments,
        )
      }),
      za = (a._emscripten_bind_DecoderBuffer_DecoderBuffer_0 = function () {
        return (za = a._emscripten_bind_DecoderBuffer_DecoderBuffer_0 =
          a.asm.i).apply(null, arguments)
      }),
      Ya = (a._emscripten_bind_DecoderBuffer_Init_2 = function () {
        return (Ya = a._emscripten_bind_DecoderBuffer_Init_2 = a.asm.j).apply(
          null,
          arguments,
        )
      }),
      Za = (a._emscripten_bind_DecoderBuffer___destroy___0 = function () {
        return (Za = a._emscripten_bind_DecoderBuffer___destroy___0 =
          a.asm.k).apply(null, arguments)
      }),
      Aa = (a._emscripten_bind_AttributeTransformData_AttributeTransformData_0 =
        function () {
          return (Aa =
            a._emscripten_bind_AttributeTransformData_AttributeTransformData_0 =
              a.asm.l).apply(null, arguments)
        }),
      $a = (a._emscripten_bind_AttributeTransformData_transform_type_0 =
        function () {
          return ($a =
            a._emscripten_bind_AttributeTransformData_transform_type_0 =
              a.asm.m).apply(null, arguments)
        }),
      ab = (a._emscripten_bind_AttributeTransformData___destroy___0 =
        function () {
          return (ab = a._emscripten_bind_AttributeTransformData___destroy___0 =
            a.asm.n).apply(null, arguments)
        }),
      Ba = (a._emscripten_bind_GeometryAttribute_GeometryAttribute_0 =
        function () {
          return (Ba =
            a._emscripten_bind_GeometryAttribute_GeometryAttribute_0 =
              a.asm.o).apply(null, arguments)
        }),
      bb = (a._emscripten_bind_GeometryAttribute___destroy___0 = function () {
        return (bb = a._emscripten_bind_GeometryAttribute___destroy___0 =
          a.asm.p).apply(null, arguments)
      }),
      Ca = (a._emscripten_bind_PointAttribute_PointAttribute_0 = function () {
        return (Ca = a._emscripten_bind_PointAttribute_PointAttribute_0 =
          a.asm.q).apply(null, arguments)
      }),
      cb = (a._emscripten_bind_PointAttribute_size_0 = function () {
        return (cb = a._emscripten_bind_PointAttribute_size_0 = a.asm.r).apply(
          null,
          arguments,
        )
      }),
      db = (a._emscripten_bind_PointAttribute_GetAttributeTransformData_0 =
        function () {
          return (db =
            a._emscripten_bind_PointAttribute_GetAttributeTransformData_0 =
              a.asm.s).apply(null, arguments)
        }),
      eb = (a._emscripten_bind_PointAttribute_attribute_type_0 = function () {
        return (eb = a._emscripten_bind_PointAttribute_attribute_type_0 =
          a.asm.t).apply(null, arguments)
      }),
      fb = (a._emscripten_bind_PointAttribute_data_type_0 = function () {
        return (fb = a._emscripten_bind_PointAttribute_data_type_0 =
          a.asm.u).apply(null, arguments)
      }),
      gb = (a._emscripten_bind_PointAttribute_num_components_0 = function () {
        return (gb = a._emscripten_bind_PointAttribute_num_components_0 =
          a.asm.v).apply(null, arguments)
      }),
      hb = (a._emscripten_bind_PointAttribute_normalized_0 = function () {
        return (hb = a._emscripten_bind_PointAttribute_normalized_0 =
          a.asm.w).apply(null, arguments)
      }),
      ib = (a._emscripten_bind_PointAttribute_byte_stride_0 = function () {
        return (ib = a._emscripten_bind_PointAttribute_byte_stride_0 =
          a.asm.x).apply(null, arguments)
      }),
      jb = (a._emscripten_bind_PointAttribute_byte_offset_0 = function () {
        return (jb = a._emscripten_bind_PointAttribute_byte_offset_0 =
          a.asm.y).apply(null, arguments)
      }),
      kb = (a._emscripten_bind_PointAttribute_unique_id_0 = function () {
        return (kb = a._emscripten_bind_PointAttribute_unique_id_0 =
          a.asm.z).apply(null, arguments)
      }),
      lb = (a._emscripten_bind_PointAttribute___destroy___0 = function () {
        return (lb = a._emscripten_bind_PointAttribute___destroy___0 =
          a.asm.A).apply(null, arguments)
      }),
      Da =
        (a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0 =
          function () {
            return (Da =
              a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0 =
                a.asm.B).apply(null, arguments)
          }),
      mb =
        (a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1 =
          function () {
            return (mb =
              a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1 =
                a.asm.C).apply(null, arguments)
          }),
      nb =
        (a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0 =
          function () {
            return (nb =
              a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0 =
                a.asm.D).apply(null, arguments)
          }),
      ob = (a._emscripten_bind_AttributeQuantizationTransform_min_value_1 =
        function () {
          return (ob =
            a._emscripten_bind_AttributeQuantizationTransform_min_value_1 =
              a.asm.E).apply(null, arguments)
        }),
      pb = (a._emscripten_bind_AttributeQuantizationTransform_range_0 =
        function () {
          return (pb =
            a._emscripten_bind_AttributeQuantizationTransform_range_0 =
              a.asm.F).apply(null, arguments)
        }),
      qb = (a._emscripten_bind_AttributeQuantizationTransform___destroy___0 =
        function () {
          return (qb =
            a._emscripten_bind_AttributeQuantizationTransform___destroy___0 =
              a.asm.G).apply(null, arguments)
        }),
      Ea =
        (a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0 =
          function () {
            return (Ea =
              a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0 =
                a.asm.H).apply(null, arguments)
          }),
      rb =
        (a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1 =
          function () {
            return (rb =
              a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1 =
                a.asm.I).apply(null, arguments)
          }),
      sb =
        (a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0 =
          function () {
            return (sb =
              a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0 =
                a.asm.J).apply(null, arguments)
          }),
      tb = (a._emscripten_bind_AttributeOctahedronTransform___destroy___0 =
        function () {
          return (tb =
            a._emscripten_bind_AttributeOctahedronTransform___destroy___0 =
              a.asm.K).apply(null, arguments)
        }),
      Fa = (a._emscripten_bind_PointCloud_PointCloud_0 = function () {
        return (Fa = a._emscripten_bind_PointCloud_PointCloud_0 =
          a.asm.L).apply(null, arguments)
      }),
      ub = (a._emscripten_bind_PointCloud_num_attributes_0 = function () {
        return (ub = a._emscripten_bind_PointCloud_num_attributes_0 =
          a.asm.M).apply(null, arguments)
      }),
      vb = (a._emscripten_bind_PointCloud_num_points_0 = function () {
        return (vb = a._emscripten_bind_PointCloud_num_points_0 =
          a.asm.N).apply(null, arguments)
      }),
      wb = (a._emscripten_bind_PointCloud___destroy___0 = function () {
        return (wb = a._emscripten_bind_PointCloud___destroy___0 =
          a.asm.O).apply(null, arguments)
      }),
      Ga = (a._emscripten_bind_Mesh_Mesh_0 = function () {
        return (Ga = a._emscripten_bind_Mesh_Mesh_0 = a.asm.P).apply(
          null,
          arguments,
        )
      }),
      xb = (a._emscripten_bind_Mesh_num_faces_0 = function () {
        return (xb = a._emscripten_bind_Mesh_num_faces_0 = a.asm.Q).apply(
          null,
          arguments,
        )
      }),
      yb = (a._emscripten_bind_Mesh_num_attributes_0 = function () {
        return (yb = a._emscripten_bind_Mesh_num_attributes_0 = a.asm.R).apply(
          null,
          arguments,
        )
      }),
      zb = (a._emscripten_bind_Mesh_num_points_0 = function () {
        return (zb = a._emscripten_bind_Mesh_num_points_0 = a.asm.S).apply(
          null,
          arguments,
        )
      }),
      Ab = (a._emscripten_bind_Mesh___destroy___0 = function () {
        return (Ab = a._emscripten_bind_Mesh___destroy___0 = a.asm.T).apply(
          null,
          arguments,
        )
      }),
      Ha = (a._emscripten_bind_Metadata_Metadata_0 = function () {
        return (Ha = a._emscripten_bind_Metadata_Metadata_0 = a.asm.U).apply(
          null,
          arguments,
        )
      }),
      Bb = (a._emscripten_bind_Metadata___destroy___0 = function () {
        return (Bb = a._emscripten_bind_Metadata___destroy___0 = a.asm.V).apply(
          null,
          arguments,
        )
      }),
      Cb = (a._emscripten_bind_Status_code_0 = function () {
        return (Cb = a._emscripten_bind_Status_code_0 = a.asm.W).apply(
          null,
          arguments,
        )
      }),
      Db = (a._emscripten_bind_Status_ok_0 = function () {
        return (Db = a._emscripten_bind_Status_ok_0 = a.asm.X).apply(
          null,
          arguments,
        )
      }),
      Eb = (a._emscripten_bind_Status_error_msg_0 = function () {
        return (Eb = a._emscripten_bind_Status_error_msg_0 = a.asm.Y).apply(
          null,
          arguments,
        )
      }),
      Fb = (a._emscripten_bind_Status___destroy___0 = function () {
        return (Fb = a._emscripten_bind_Status___destroy___0 = a.asm.Z).apply(
          null,
          arguments,
        )
      }),
      Ia = (a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0 =
        function () {
          return (Ia =
            a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0 =
              a.asm._).apply(null, arguments)
        }),
      Gb = (a._emscripten_bind_DracoFloat32Array_GetValue_1 = function () {
        return (Gb = a._emscripten_bind_DracoFloat32Array_GetValue_1 =
          a.asm.$).apply(null, arguments)
      }),
      Hb = (a._emscripten_bind_DracoFloat32Array_size_0 = function () {
        return (Hb = a._emscripten_bind_DracoFloat32Array_size_0 =
          a.asm.aa).apply(null, arguments)
      }),
      Ib = (a._emscripten_bind_DracoFloat32Array___destroy___0 = function () {
        return (Ib = a._emscripten_bind_DracoFloat32Array___destroy___0 =
          a.asm.ba).apply(null, arguments)
      }),
      Ja = (a._emscripten_bind_DracoInt8Array_DracoInt8Array_0 = function () {
        return (Ja = a._emscripten_bind_DracoInt8Array_DracoInt8Array_0 =
          a.asm.ca).apply(null, arguments)
      }),
      Jb = (a._emscripten_bind_DracoInt8Array_GetValue_1 = function () {
        return (Jb = a._emscripten_bind_DracoInt8Array_GetValue_1 =
          a.asm.da).apply(null, arguments)
      }),
      Kb = (a._emscripten_bind_DracoInt8Array_size_0 = function () {
        return (Kb = a._emscripten_bind_DracoInt8Array_size_0 = a.asm.ea).apply(
          null,
          arguments,
        )
      }),
      Lb = (a._emscripten_bind_DracoInt8Array___destroy___0 = function () {
        return (Lb = a._emscripten_bind_DracoInt8Array___destroy___0 =
          a.asm.fa).apply(null, arguments)
      }),
      Ka = (a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0 = function () {
        return (Ka = a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0 =
          a.asm.ga).apply(null, arguments)
      }),
      Mb = (a._emscripten_bind_DracoUInt8Array_GetValue_1 = function () {
        return (Mb = a._emscripten_bind_DracoUInt8Array_GetValue_1 =
          a.asm.ha).apply(null, arguments)
      }),
      Nb = (a._emscripten_bind_DracoUInt8Array_size_0 = function () {
        return (Nb = a._emscripten_bind_DracoUInt8Array_size_0 =
          a.asm.ia).apply(null, arguments)
      }),
      Ob = (a._emscripten_bind_DracoUInt8Array___destroy___0 = function () {
        return (Ob = a._emscripten_bind_DracoUInt8Array___destroy___0 =
          a.asm.ja).apply(null, arguments)
      }),
      La = (a._emscripten_bind_DracoInt16Array_DracoInt16Array_0 = function () {
        return (La = a._emscripten_bind_DracoInt16Array_DracoInt16Array_0 =
          a.asm.ka).apply(null, arguments)
      }),
      Pb = (a._emscripten_bind_DracoInt16Array_GetValue_1 = function () {
        return (Pb = a._emscripten_bind_DracoInt16Array_GetValue_1 =
          a.asm.la).apply(null, arguments)
      }),
      Qb = (a._emscripten_bind_DracoInt16Array_size_0 = function () {
        return (Qb = a._emscripten_bind_DracoInt16Array_size_0 =
          a.asm.ma).apply(null, arguments)
      }),
      Rb = (a._emscripten_bind_DracoInt16Array___destroy___0 = function () {
        return (Rb = a._emscripten_bind_DracoInt16Array___destroy___0 =
          a.asm.na).apply(null, arguments)
      }),
      Ma = (a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0 =
        function () {
          return (Ma = a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0 =
            a.asm.oa).apply(null, arguments)
        }),
      Sb = (a._emscripten_bind_DracoUInt16Array_GetValue_1 = function () {
        return (Sb = a._emscripten_bind_DracoUInt16Array_GetValue_1 =
          a.asm.pa).apply(null, arguments)
      }),
      Tb = (a._emscripten_bind_DracoUInt16Array_size_0 = function () {
        return (Tb = a._emscripten_bind_DracoUInt16Array_size_0 =
          a.asm.qa).apply(null, arguments)
      }),
      Ub = (a._emscripten_bind_DracoUInt16Array___destroy___0 = function () {
        return (Ub = a._emscripten_bind_DracoUInt16Array___destroy___0 =
          a.asm.ra).apply(null, arguments)
      }),
      Na = (a._emscripten_bind_DracoInt32Array_DracoInt32Array_0 = function () {
        return (Na = a._emscripten_bind_DracoInt32Array_DracoInt32Array_0 =
          a.asm.sa).apply(null, arguments)
      }),
      Vb = (a._emscripten_bind_DracoInt32Array_GetValue_1 = function () {
        return (Vb = a._emscripten_bind_DracoInt32Array_GetValue_1 =
          a.asm.ta).apply(null, arguments)
      }),
      Wb = (a._emscripten_bind_DracoInt32Array_size_0 = function () {
        return (Wb = a._emscripten_bind_DracoInt32Array_size_0 =
          a.asm.ua).apply(null, arguments)
      }),
      Xb = (a._emscripten_bind_DracoInt32Array___destroy___0 = function () {
        return (Xb = a._emscripten_bind_DracoInt32Array___destroy___0 =
          a.asm.va).apply(null, arguments)
      }),
      Oa = (a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0 =
        function () {
          return (Oa = a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0 =
            a.asm.wa).apply(null, arguments)
        }),
      Yb = (a._emscripten_bind_DracoUInt32Array_GetValue_1 = function () {
        return (Yb = a._emscripten_bind_DracoUInt32Array_GetValue_1 =
          a.asm.xa).apply(null, arguments)
      }),
      Zb = (a._emscripten_bind_DracoUInt32Array_size_0 = function () {
        return (Zb = a._emscripten_bind_DracoUInt32Array_size_0 =
          a.asm.ya).apply(null, arguments)
      }),
      $b = (a._emscripten_bind_DracoUInt32Array___destroy___0 = function () {
        return ($b = a._emscripten_bind_DracoUInt32Array___destroy___0 =
          a.asm.za).apply(null, arguments)
      }),
      Pa = (a._emscripten_bind_MetadataQuerier_MetadataQuerier_0 = function () {
        return (Pa = a._emscripten_bind_MetadataQuerier_MetadataQuerier_0 =
          a.asm.Aa).apply(null, arguments)
      }),
      ac = (a._emscripten_bind_MetadataQuerier_HasEntry_2 = function () {
        return (ac = a._emscripten_bind_MetadataQuerier_HasEntry_2 =
          a.asm.Ba).apply(null, arguments)
      }),
      bc = (a._emscripten_bind_MetadataQuerier_GetIntEntry_2 = function () {
        return (bc = a._emscripten_bind_MetadataQuerier_GetIntEntry_2 =
          a.asm.Ca).apply(null, arguments)
      }),
      cc = (a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3 =
        function () {
          return (cc = a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3 =
            a.asm.Da).apply(null, arguments)
        }),
      dc = (a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2 = function () {
        return (dc = a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2 =
          a.asm.Ea).apply(null, arguments)
      }),
      ec = (a._emscripten_bind_MetadataQuerier_GetStringEntry_2 = function () {
        return (ec = a._emscripten_bind_MetadataQuerier_GetStringEntry_2 =
          a.asm.Fa).apply(null, arguments)
      }),
      fc = (a._emscripten_bind_MetadataQuerier_NumEntries_1 = function () {
        return (fc = a._emscripten_bind_MetadataQuerier_NumEntries_1 =
          a.asm.Ga).apply(null, arguments)
      }),
      gc = (a._emscripten_bind_MetadataQuerier_GetEntryName_2 = function () {
        return (gc = a._emscripten_bind_MetadataQuerier_GetEntryName_2 =
          a.asm.Ha).apply(null, arguments)
      }),
      hc = (a._emscripten_bind_MetadataQuerier___destroy___0 = function () {
        return (hc = a._emscripten_bind_MetadataQuerier___destroy___0 =
          a.asm.Ia).apply(null, arguments)
      }),
      Qa = (a._emscripten_bind_Decoder_Decoder_0 = function () {
        return (Qa = a._emscripten_bind_Decoder_Decoder_0 = a.asm.Ja).apply(
          null,
          arguments,
        )
      }),
      ic = (a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3 = function () {
        return (ic = a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3 =
          a.asm.Ka).apply(null, arguments)
      }),
      jc = (a._emscripten_bind_Decoder_DecodeArrayToMesh_3 = function () {
        return (jc = a._emscripten_bind_Decoder_DecodeArrayToMesh_3 =
          a.asm.La).apply(null, arguments)
      }),
      kc = (a._emscripten_bind_Decoder_GetAttributeId_2 = function () {
        return (kc = a._emscripten_bind_Decoder_GetAttributeId_2 =
          a.asm.Ma).apply(null, arguments)
      }),
      lc = (a._emscripten_bind_Decoder_GetAttributeIdByName_2 = function () {
        return (lc = a._emscripten_bind_Decoder_GetAttributeIdByName_2 =
          a.asm.Na).apply(null, arguments)
      }),
      mc = (a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3 =
        function () {
          return (mc =
            a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3 =
              a.asm.Oa).apply(null, arguments)
        }),
      nc = (a._emscripten_bind_Decoder_GetAttribute_2 = function () {
        return (nc = a._emscripten_bind_Decoder_GetAttribute_2 =
          a.asm.Pa).apply(null, arguments)
      }),
      oc = (a._emscripten_bind_Decoder_GetAttributeByUniqueId_2 = function () {
        return (oc = a._emscripten_bind_Decoder_GetAttributeByUniqueId_2 =
          a.asm.Qa).apply(null, arguments)
      }),
      pc = (a._emscripten_bind_Decoder_GetMetadata_1 = function () {
        return (pc = a._emscripten_bind_Decoder_GetMetadata_1 = a.asm.Ra).apply(
          null,
          arguments,
        )
      }),
      qc = (a._emscripten_bind_Decoder_GetAttributeMetadata_2 = function () {
        return (qc = a._emscripten_bind_Decoder_GetAttributeMetadata_2 =
          a.asm.Sa).apply(null, arguments)
      }),
      rc = (a._emscripten_bind_Decoder_GetFaceFromMesh_3 = function () {
        return (rc = a._emscripten_bind_Decoder_GetFaceFromMesh_3 =
          a.asm.Ta).apply(null, arguments)
      }),
      sc = (a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2 =
        function () {
          return (sc = a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2 =
            a.asm.Ua).apply(null, arguments)
        }),
      tc = (a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3 = function () {
        return (tc = a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3 =
          a.asm.Va).apply(null, arguments)
      }),
      uc = (a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3 = function () {
        return (uc = a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3 =
          a.asm.Wa).apply(null, arguments)
      }),
      vc = (a._emscripten_bind_Decoder_GetAttributeFloat_3 = function () {
        return (vc = a._emscripten_bind_Decoder_GetAttributeFloat_3 =
          a.asm.Xa).apply(null, arguments)
      }),
      wc = (a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3 =
        function () {
          return (wc =
            a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3 =
              a.asm.Ya).apply(null, arguments)
        }),
      xc = (a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3 =
        function () {
          return (xc =
            a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3 =
              a.asm.Za).apply(null, arguments)
        }),
      yc = (a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3 =
        function () {
          return (yc =
            a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3 =
              a.asm._a).apply(null, arguments)
        }),
      zc = (a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3 =
        function () {
          return (zc =
            a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3 =
              a.asm.$a).apply(null, arguments)
        }),
      Ac = (a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3 =
        function () {
          return (Ac =
            a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3 =
              a.asm.ab).apply(null, arguments)
        }),
      Bc = (a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3 =
        function () {
          return (Bc =
            a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3 =
              a.asm.bb).apply(null, arguments)
        }),
      Cc = (a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3 =
        function () {
          return (Cc =
            a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3 =
              a.asm.cb).apply(null, arguments)
        }),
      Dc = (a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3 =
        function () {
          return (Dc =
            a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3 =
              a.asm.db).apply(null, arguments)
        }),
      Ec = (a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5 =
        function () {
          return (Ec =
            a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5 =
              a.asm.eb).apply(null, arguments)
        }),
      Fc = (a._emscripten_bind_Decoder_SkipAttributeTransform_1 = function () {
        return (Fc = a._emscripten_bind_Decoder_SkipAttributeTransform_1 =
          a.asm.fb).apply(null, arguments)
      }),
      Gc = (a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1 =
        function () {
          return (Gc =
            a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1 =
              a.asm.gb).apply(null, arguments)
        }),
      Hc = (a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2 =
        function () {
          return (Hc = a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2 =
            a.asm.hb).apply(null, arguments)
        }),
      Ic = (a._emscripten_bind_Decoder_DecodeBufferToMesh_2 = function () {
        return (Ic = a._emscripten_bind_Decoder_DecodeBufferToMesh_2 =
          a.asm.ib).apply(null, arguments)
      }),
      Jc = (a._emscripten_bind_Decoder___destroy___0 = function () {
        return (Jc = a._emscripten_bind_Decoder___destroy___0 = a.asm.jb).apply(
          null,
          arguments,
        )
      }),
      Kc =
        (a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM =
          function () {
            return (Kc =
              a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM =
                a.asm.kb).apply(null, arguments)
          }),
      Lc =
        (a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM =
          function () {
            return (Lc =
              a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM =
                a.asm.lb).apply(null, arguments)
          }),
      Mc =
        (a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM =
          function () {
            return (Mc =
              a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM =
                a.asm.mb).apply(null, arguments)
          }),
      Nc =
        (a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM =
          function () {
            return (Nc =
              a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM =
                a.asm.nb).apply(null, arguments)
          }),
      Oc = (a._emscripten_enum_draco_GeometryAttribute_Type_INVALID =
        function () {
          return (Oc = a._emscripten_enum_draco_GeometryAttribute_Type_INVALID =
            a.asm.ob).apply(null, arguments)
        }),
      Pc = (a._emscripten_enum_draco_GeometryAttribute_Type_POSITION =
        function () {
          return (Pc =
            a._emscripten_enum_draco_GeometryAttribute_Type_POSITION =
              a.asm.pb).apply(null, arguments)
        }),
      Qc = (a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL =
        function () {
          return (Qc = a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL =
            a.asm.qb).apply(null, arguments)
        }),
      Rc = (a._emscripten_enum_draco_GeometryAttribute_Type_COLOR =
        function () {
          return (Rc = a._emscripten_enum_draco_GeometryAttribute_Type_COLOR =
            a.asm.rb).apply(null, arguments)
        }),
      Sc = (a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD =
        function () {
          return (Sc =
            a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD =
              a.asm.sb).apply(null, arguments)
        }),
      Tc = (a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC =
        function () {
          return (Tc = a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC =
            a.asm.tb).apply(null, arguments)
        }),
      Uc = (a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE =
        function () {
          return (Uc =
            a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE =
              a.asm.ub).apply(null, arguments)
        }),
      Vc = (a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD =
        function () {
          return (Vc =
            a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD =
              a.asm.vb).apply(null, arguments)
        }),
      Wc = (a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH =
        function () {
          return (Wc =
            a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH =
              a.asm.wb).apply(null, arguments)
        }),
      Xc = (a._emscripten_enum_draco_DataType_DT_INVALID = function () {
        return (Xc = a._emscripten_enum_draco_DataType_DT_INVALID =
          a.asm.xb).apply(null, arguments)
      }),
      Yc = (a._emscripten_enum_draco_DataType_DT_INT8 = function () {
        return (Yc = a._emscripten_enum_draco_DataType_DT_INT8 =
          a.asm.yb).apply(null, arguments)
      }),
      Zc = (a._emscripten_enum_draco_DataType_DT_UINT8 = function () {
        return (Zc = a._emscripten_enum_draco_DataType_DT_UINT8 =
          a.asm.zb).apply(null, arguments)
      }),
      $c = (a._emscripten_enum_draco_DataType_DT_INT16 = function () {
        return ($c = a._emscripten_enum_draco_DataType_DT_INT16 =
          a.asm.Ab).apply(null, arguments)
      }),
      ad = (a._emscripten_enum_draco_DataType_DT_UINT16 = function () {
        return (ad = a._emscripten_enum_draco_DataType_DT_UINT16 =
          a.asm.Bb).apply(null, arguments)
      }),
      bd = (a._emscripten_enum_draco_DataType_DT_INT32 = function () {
        return (bd = a._emscripten_enum_draco_DataType_DT_INT32 =
          a.asm.Cb).apply(null, arguments)
      }),
      cd = (a._emscripten_enum_draco_DataType_DT_UINT32 = function () {
        return (cd = a._emscripten_enum_draco_DataType_DT_UINT32 =
          a.asm.Db).apply(null, arguments)
      }),
      dd = (a._emscripten_enum_draco_DataType_DT_INT64 = function () {
        return (dd = a._emscripten_enum_draco_DataType_DT_INT64 =
          a.asm.Eb).apply(null, arguments)
      }),
      ed = (a._emscripten_enum_draco_DataType_DT_UINT64 = function () {
        return (ed = a._emscripten_enum_draco_DataType_DT_UINT64 =
          a.asm.Fb).apply(null, arguments)
      }),
      fd = (a._emscripten_enum_draco_DataType_DT_FLOAT32 = function () {
        return (fd = a._emscripten_enum_draco_DataType_DT_FLOAT32 =
          a.asm.Gb).apply(null, arguments)
      }),
      gd = (a._emscripten_enum_draco_DataType_DT_FLOAT64 = function () {
        return (gd = a._emscripten_enum_draco_DataType_DT_FLOAT64 =
          a.asm.Hb).apply(null, arguments)
      }),
      hd = (a._emscripten_enum_draco_DataType_DT_BOOL = function () {
        return (hd = a._emscripten_enum_draco_DataType_DT_BOOL =
          a.asm.Ib).apply(null, arguments)
      }),
      id = (a._emscripten_enum_draco_DataType_DT_TYPES_COUNT = function () {
        return (id = a._emscripten_enum_draco_DataType_DT_TYPES_COUNT =
          a.asm.Jb).apply(null, arguments)
      }),
      jd = (a._emscripten_enum_draco_StatusCode_OK = function () {
        return (jd = a._emscripten_enum_draco_StatusCode_OK = a.asm.Kb).apply(
          null,
          arguments,
        )
      }),
      kd = (a._emscripten_enum_draco_StatusCode_DRACO_ERROR = function () {
        return (kd = a._emscripten_enum_draco_StatusCode_DRACO_ERROR =
          a.asm.Lb).apply(null, arguments)
      }),
      ld = (a._emscripten_enum_draco_StatusCode_IO_ERROR = function () {
        return (ld = a._emscripten_enum_draco_StatusCode_IO_ERROR =
          a.asm.Mb).apply(null, arguments)
      }),
      md = (a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER =
        function () {
          return (md = a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER =
            a.asm.Nb).apply(null, arguments)
        }),
      nd = (a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION =
        function () {
          return (nd = a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION =
            a.asm.Ob).apply(null, arguments)
        }),
      od = (a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION = function () {
        return (od = a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION =
          a.asm.Pb).apply(null, arguments)
      })
    a._malloc = function () {
      return (a._malloc = a.asm.Qb).apply(null, arguments)
    }
    a._free = function () {
      return (a._free = a.asm.Rb).apply(null, arguments)
    }
    var ua = function () {
      return (ua = a.asm.Sb).apply(null, arguments)
    }
    a.___start_em_js = 11660
    a.___stop_em_js = 11758
    var la
    ha = function b() {
      la || F()
      la || (ha = b)
    }
    if (a.preInit)
      for (
        'function' == typeof a.preInit && (a.preInit = [a.preInit]);
        0 < a.preInit.length;

      )
        a.preInit.pop()()
    F()
    v.prototype = Object.create(v.prototype)
    v.prototype.constructor = v
    v.prototype.__class__ = v
    v.__cache__ = {}
    a.WrapperObject = v
    a.getCache = w
    a.wrapPointer = B
    a.castObject = function (b, c) {
      return B(b.ptr, c)
    }
    a.NULL = B(0)
    a.destroy = function (b) {
      if (!b.__destroy__)
        throw 'Error: Cannot destroy object. (Did you create it yourself?)'
      b.__destroy__()
      delete w(b.__class__)[b.ptr]
    }
    a.compare = function (b, c) {
      return b.ptr === c.ptr
    }
    a.getPointer = function (b) {
      return b.ptr
    }
    a.getClass = function (b) {
      return b.__class__
    }
    var r = {
      buffer: 0,
      size: 0,
      pos: 0,
      temps: [],
      needed: 0,
      prepare: function () {
        if (r.needed) {
          for (var b = 0; b < r.temps.length; b++) a._free(r.temps[b])
          r.temps.length = 0
          a._free(r.buffer)
          r.buffer = 0
          r.size += r.needed
          r.needed = 0
        }
        r.buffer ||
          ((r.size += 128),
          (r.buffer = a._malloc(r.size)),
          r.buffer || y(void 0))
        r.pos = 0
      },
      alloc: function (b, c) {
        r.buffer || y(void 0)
        b = b.length * c.BYTES_PER_ELEMENT
        b = (b + 7) & -8
        r.pos + b >= r.size
          ? (0 < b || y(void 0),
            (r.needed += b),
            (c = a._malloc(b)),
            r.temps.push(c))
          : ((c = r.buffer + r.pos), (r.pos += b))
        return c
      },
      copy: function (b, c, d) {
        d >>>= 0
        switch (c.BYTES_PER_ELEMENT) {
          case 2:
            d >>>= 1
            break
          case 4:
            d >>>= 2
            break
          case 8:
            d >>>= 3
        }
        for (var g = 0; g < b.length; g++) c[d + g] = b[g]
      },
    }
    X.prototype = Object.create(v.prototype)
    X.prototype.constructor = X
    X.prototype.__class__ = X
    X.__cache__ = {}
    a.VoidPtr = X
    X.prototype.__destroy__ = X.prototype.__destroy__ = function () {
      Xa(this.ptr)
    }
    S.prototype = Object.create(v.prototype)
    S.prototype.constructor = S
    S.prototype.__class__ = S
    S.__cache__ = {}
    a.DecoderBuffer = S
    S.prototype.Init = S.prototype.Init = function (b, c) {
      var d = this.ptr
      r.prepare()
      'object' == typeof b && (b = Z(b))
      c && 'object' === typeof c && (c = c.ptr)
      Ya(d, b, c)
    }
    S.prototype.__destroy__ = S.prototype.__destroy__ = function () {
      Za(this.ptr)
    }
    Q.prototype = Object.create(v.prototype)
    Q.prototype.constructor = Q
    Q.prototype.__class__ = Q
    Q.__cache__ = {}
    a.AttributeTransformData = Q
    Q.prototype.transform_type = Q.prototype.transform_type = function () {
      return $a(this.ptr)
    }
    Q.prototype.__destroy__ = Q.prototype.__destroy__ = function () {
      ab(this.ptr)
    }
    V.prototype = Object.create(v.prototype)
    V.prototype.constructor = V
    V.prototype.__class__ = V
    V.__cache__ = {}
    a.GeometryAttribute = V
    V.prototype.__destroy__ = V.prototype.__destroy__ = function () {
      bb(this.ptr)
    }
    x.prototype = Object.create(v.prototype)
    x.prototype.constructor = x
    x.prototype.__class__ = x
    x.__cache__ = {}
    a.PointAttribute = x
    x.prototype.size = x.prototype.size = function () {
      return cb(this.ptr)
    }
    x.prototype.GetAttributeTransformData =
      x.prototype.GetAttributeTransformData = function () {
        return B(db(this.ptr), Q)
      }
    x.prototype.attribute_type = x.prototype.attribute_type = function () {
      return eb(this.ptr)
    }
    x.prototype.data_type = x.prototype.data_type = function () {
      return fb(this.ptr)
    }
    x.prototype.num_components = x.prototype.num_components = function () {
      return gb(this.ptr)
    }
    x.prototype.normalized = x.prototype.normalized = function () {
      return !!hb(this.ptr)
    }
    x.prototype.byte_stride = x.prototype.byte_stride = function () {
      return ib(this.ptr)
    }
    x.prototype.byte_offset = x.prototype.byte_offset = function () {
      return jb(this.ptr)
    }
    x.prototype.unique_id = x.prototype.unique_id = function () {
      return kb(this.ptr)
    }
    x.prototype.__destroy__ = x.prototype.__destroy__ = function () {
      lb(this.ptr)
    }
    D.prototype = Object.create(v.prototype)
    D.prototype.constructor = D
    D.prototype.__class__ = D
    D.__cache__ = {}
    a.AttributeQuantizationTransform = D
    D.prototype.InitFromAttribute = D.prototype.InitFromAttribute = function (
      b,
    ) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return !!mb(c, b)
    }
    D.prototype.quantization_bits = D.prototype.quantization_bits =
      function () {
        return nb(this.ptr)
      }
    D.prototype.min_value = D.prototype.min_value = function (b) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return ob(c, b)
    }
    D.prototype.range = D.prototype.range = function () {
      return pb(this.ptr)
    }
    D.prototype.__destroy__ = D.prototype.__destroy__ = function () {
      qb(this.ptr)
    }
    G.prototype = Object.create(v.prototype)
    G.prototype.constructor = G
    G.prototype.__class__ = G
    G.__cache__ = {}
    a.AttributeOctahedronTransform = G
    G.prototype.InitFromAttribute = G.prototype.InitFromAttribute = function (
      b,
    ) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return !!rb(c, b)
    }
    G.prototype.quantization_bits = G.prototype.quantization_bits =
      function () {
        return sb(this.ptr)
      }
    G.prototype.__destroy__ = G.prototype.__destroy__ = function () {
      tb(this.ptr)
    }
    H.prototype = Object.create(v.prototype)
    H.prototype.constructor = H
    H.prototype.__class__ = H
    H.__cache__ = {}
    a.PointCloud = H
    H.prototype.num_attributes = H.prototype.num_attributes = function () {
      return ub(this.ptr)
    }
    H.prototype.num_points = H.prototype.num_points = function () {
      return vb(this.ptr)
    }
    H.prototype.__destroy__ = H.prototype.__destroy__ = function () {
      wb(this.ptr)
    }
    E.prototype = Object.create(v.prototype)
    E.prototype.constructor = E
    E.prototype.__class__ = E
    E.__cache__ = {}
    a.Mesh = E
    E.prototype.num_faces = E.prototype.num_faces = function () {
      return xb(this.ptr)
    }
    E.prototype.num_attributes = E.prototype.num_attributes = function () {
      return yb(this.ptr)
    }
    E.prototype.num_points = E.prototype.num_points = function () {
      return zb(this.ptr)
    }
    E.prototype.__destroy__ = E.prototype.__destroy__ = function () {
      Ab(this.ptr)
    }
    T.prototype = Object.create(v.prototype)
    T.prototype.constructor = T
    T.prototype.__class__ = T
    T.__cache__ = {}
    a.Metadata = T
    T.prototype.__destroy__ = T.prototype.__destroy__ = function () {
      Bb(this.ptr)
    }
    C.prototype = Object.create(v.prototype)
    C.prototype.constructor = C
    C.prototype.__class__ = C
    C.__cache__ = {}
    a.Status = C
    C.prototype.code = C.prototype.code = function () {
      return Cb(this.ptr)
    }
    C.prototype.ok = C.prototype.ok = function () {
      return !!Db(this.ptr)
    }
    C.prototype.error_msg = C.prototype.error_msg = function () {
      return p(Eb(this.ptr))
    }
    C.prototype.__destroy__ = C.prototype.__destroy__ = function () {
      Fb(this.ptr)
    }
    I.prototype = Object.create(v.prototype)
    I.prototype.constructor = I
    I.prototype.__class__ = I
    I.__cache__ = {}
    a.DracoFloat32Array = I
    I.prototype.GetValue = I.prototype.GetValue = function (b) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return Gb(c, b)
    }
    I.prototype.size = I.prototype.size = function () {
      return Hb(this.ptr)
    }
    I.prototype.__destroy__ = I.prototype.__destroy__ = function () {
      Ib(this.ptr)
    }
    J.prototype = Object.create(v.prototype)
    J.prototype.constructor = J
    J.prototype.__class__ = J
    J.__cache__ = {}
    a.DracoInt8Array = J
    J.prototype.GetValue = J.prototype.GetValue = function (b) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return Jb(c, b)
    }
    J.prototype.size = J.prototype.size = function () {
      return Kb(this.ptr)
    }
    J.prototype.__destroy__ = J.prototype.__destroy__ = function () {
      Lb(this.ptr)
    }
    K.prototype = Object.create(v.prototype)
    K.prototype.constructor = K
    K.prototype.__class__ = K
    K.__cache__ = {}
    a.DracoUInt8Array = K
    K.prototype.GetValue = K.prototype.GetValue = function (b) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return Mb(c, b)
    }
    K.prototype.size = K.prototype.size = function () {
      return Nb(this.ptr)
    }
    K.prototype.__destroy__ = K.prototype.__destroy__ = function () {
      Ob(this.ptr)
    }
    L.prototype = Object.create(v.prototype)
    L.prototype.constructor = L
    L.prototype.__class__ = L
    L.__cache__ = {}
    a.DracoInt16Array = L
    L.prototype.GetValue = L.prototype.GetValue = function (b) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return Pb(c, b)
    }
    L.prototype.size = L.prototype.size = function () {
      return Qb(this.ptr)
    }
    L.prototype.__destroy__ = L.prototype.__destroy__ = function () {
      Rb(this.ptr)
    }
    M.prototype = Object.create(v.prototype)
    M.prototype.constructor = M
    M.prototype.__class__ = M
    M.__cache__ = {}
    a.DracoUInt16Array = M
    M.prototype.GetValue = M.prototype.GetValue = function (b) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return Sb(c, b)
    }
    M.prototype.size = M.prototype.size = function () {
      return Tb(this.ptr)
    }
    M.prototype.__destroy__ = M.prototype.__destroy__ = function () {
      Ub(this.ptr)
    }
    N.prototype = Object.create(v.prototype)
    N.prototype.constructor = N
    N.prototype.__class__ = N
    N.__cache__ = {}
    a.DracoInt32Array = N
    N.prototype.GetValue = N.prototype.GetValue = function (b) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return Vb(c, b)
    }
    N.prototype.size = N.prototype.size = function () {
      return Wb(this.ptr)
    }
    N.prototype.__destroy__ = N.prototype.__destroy__ = function () {
      Xb(this.ptr)
    }
    O.prototype = Object.create(v.prototype)
    O.prototype.constructor = O
    O.prototype.__class__ = O
    O.__cache__ = {}
    a.DracoUInt32Array = O
    O.prototype.GetValue = O.prototype.GetValue = function (b) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return Yb(c, b)
    }
    O.prototype.size = O.prototype.size = function () {
      return Zb(this.ptr)
    }
    O.prototype.__destroy__ = O.prototype.__destroy__ = function () {
      $b(this.ptr)
    }
    z.prototype = Object.create(v.prototype)
    z.prototype.constructor = z
    z.prototype.__class__ = z
    z.__cache__ = {}
    a.MetadataQuerier = z
    z.prototype.HasEntry = z.prototype.HasEntry = function (b, c) {
      var d = this.ptr
      r.prepare()
      b && 'object' === typeof b && (b = b.ptr)
      c = c && 'object' === typeof c ? c.ptr : R(c)
      return !!ac(d, b, c)
    }
    z.prototype.GetIntEntry = z.prototype.GetIntEntry = function (b, c) {
      var d = this.ptr
      r.prepare()
      b && 'object' === typeof b && (b = b.ptr)
      c = c && 'object' === typeof c ? c.ptr : R(c)
      return bc(d, b, c)
    }
    z.prototype.GetIntEntryArray = z.prototype.GetIntEntryArray = function (
      b,
      c,
      d,
    ) {
      var g = this.ptr
      r.prepare()
      b && 'object' === typeof b && (b = b.ptr)
      c = c && 'object' === typeof c ? c.ptr : R(c)
      d && 'object' === typeof d && (d = d.ptr)
      cc(g, b, c, d)
    }
    z.prototype.GetDoubleEntry = z.prototype.GetDoubleEntry = function (b, c) {
      var d = this.ptr
      r.prepare()
      b && 'object' === typeof b && (b = b.ptr)
      c = c && 'object' === typeof c ? c.ptr : R(c)
      return dc(d, b, c)
    }
    z.prototype.GetStringEntry = z.prototype.GetStringEntry = function (b, c) {
      var d = this.ptr
      r.prepare()
      b && 'object' === typeof b && (b = b.ptr)
      c = c && 'object' === typeof c ? c.ptr : R(c)
      return p(ec(d, b, c))
    }
    z.prototype.NumEntries = z.prototype.NumEntries = function (b) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return fc(c, b)
    }
    z.prototype.GetEntryName = z.prototype.GetEntryName = function (b, c) {
      var d = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      c && 'object' === typeof c && (c = c.ptr)
      return p(gc(d, b, c))
    }
    z.prototype.__destroy__ = z.prototype.__destroy__ = function () {
      hc(this.ptr)
    }
    m.prototype = Object.create(v.prototype)
    m.prototype.constructor = m
    m.prototype.__class__ = m
    m.__cache__ = {}
    a.Decoder = m
    m.prototype.DecodeArrayToPointCloud = m.prototype.DecodeArrayToPointCloud =
      function (b, c, d) {
        var g = this.ptr
        r.prepare()
        'object' == typeof b && (b = Z(b))
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        return B(ic(g, b, c, d), C)
      }
    m.prototype.DecodeArrayToMesh = m.prototype.DecodeArrayToMesh = function (
      b,
      c,
      d,
    ) {
      var g = this.ptr
      r.prepare()
      'object' == typeof b && (b = Z(b))
      c && 'object' === typeof c && (c = c.ptr)
      d && 'object' === typeof d && (d = d.ptr)
      return B(jc(g, b, c, d), C)
    }
    m.prototype.GetAttributeId = m.prototype.GetAttributeId = function (b, c) {
      var d = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      c && 'object' === typeof c && (c = c.ptr)
      return kc(d, b, c)
    }
    m.prototype.GetAttributeIdByName = m.prototype.GetAttributeIdByName =
      function (b, c) {
        var d = this.ptr
        r.prepare()
        b && 'object' === typeof b && (b = b.ptr)
        c = c && 'object' === typeof c ? c.ptr : R(c)
        return lc(d, b, c)
      }
    m.prototype.GetAttributeIdByMetadataEntry =
      m.prototype.GetAttributeIdByMetadataEntry = function (b, c, d) {
        var g = this.ptr
        r.prepare()
        b && 'object' === typeof b && (b = b.ptr)
        c = c && 'object' === typeof c ? c.ptr : R(c)
        d = d && 'object' === typeof d ? d.ptr : R(d)
        return mc(g, b, c, d)
      }
    m.prototype.GetAttribute = m.prototype.GetAttribute = function (b, c) {
      var d = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      c && 'object' === typeof c && (c = c.ptr)
      return B(nc(d, b, c), x)
    }
    m.prototype.GetAttributeByUniqueId = m.prototype.GetAttributeByUniqueId =
      function (b, c) {
        var d = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        return B(oc(d, b, c), x)
      }
    m.prototype.GetMetadata = m.prototype.GetMetadata = function (b) {
      var c = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      return B(pc(c, b), T)
    }
    m.prototype.GetAttributeMetadata = m.prototype.GetAttributeMetadata =
      function (b, c) {
        var d = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        return B(qc(d, b, c), T)
      }
    m.prototype.GetFaceFromMesh = m.prototype.GetFaceFromMesh = function (
      b,
      c,
      d,
    ) {
      var g = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      c && 'object' === typeof c && (c = c.ptr)
      d && 'object' === typeof d && (d = d.ptr)
      return !!rc(g, b, c, d)
    }
    m.prototype.GetTriangleStripsFromMesh =
      m.prototype.GetTriangleStripsFromMesh = function (b, c) {
        var d = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        return sc(d, b, c)
      }
    m.prototype.GetTrianglesUInt16Array = m.prototype.GetTrianglesUInt16Array =
      function (b, c, d) {
        var g = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        return !!tc(g, b, c, d)
      }
    m.prototype.GetTrianglesUInt32Array = m.prototype.GetTrianglesUInt32Array =
      function (b, c, d) {
        var g = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        return !!uc(g, b, c, d)
      }
    m.prototype.GetAttributeFloat = m.prototype.GetAttributeFloat = function (
      b,
      c,
      d,
    ) {
      var g = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      c && 'object' === typeof c && (c = c.ptr)
      d && 'object' === typeof d && (d = d.ptr)
      return !!vc(g, b, c, d)
    }
    m.prototype.GetAttributeFloatForAllPoints =
      m.prototype.GetAttributeFloatForAllPoints = function (b, c, d) {
        var g = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        return !!wc(g, b, c, d)
      }
    m.prototype.GetAttributeIntForAllPoints =
      m.prototype.GetAttributeIntForAllPoints = function (b, c, d) {
        var g = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        return !!xc(g, b, c, d)
      }
    m.prototype.GetAttributeInt8ForAllPoints =
      m.prototype.GetAttributeInt8ForAllPoints = function (b, c, d) {
        var g = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        return !!yc(g, b, c, d)
      }
    m.prototype.GetAttributeUInt8ForAllPoints =
      m.prototype.GetAttributeUInt8ForAllPoints = function (b, c, d) {
        var g = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        return !!zc(g, b, c, d)
      }
    m.prototype.GetAttributeInt16ForAllPoints =
      m.prototype.GetAttributeInt16ForAllPoints = function (b, c, d) {
        var g = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        return !!Ac(g, b, c, d)
      }
    m.prototype.GetAttributeUInt16ForAllPoints =
      m.prototype.GetAttributeUInt16ForAllPoints = function (b, c, d) {
        var g = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        return !!Bc(g, b, c, d)
      }
    m.prototype.GetAttributeInt32ForAllPoints =
      m.prototype.GetAttributeInt32ForAllPoints = function (b, c, d) {
        var g = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        return !!Cc(g, b, c, d)
      }
    m.prototype.GetAttributeUInt32ForAllPoints =
      m.prototype.GetAttributeUInt32ForAllPoints = function (b, c, d) {
        var g = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        return !!Dc(g, b, c, d)
      }
    m.prototype.GetAttributeDataArrayForAllPoints =
      m.prototype.GetAttributeDataArrayForAllPoints = function (b, c, d, g, t) {
        var aa = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        d && 'object' === typeof d && (d = d.ptr)
        g && 'object' === typeof g && (g = g.ptr)
        t && 'object' === typeof t && (t = t.ptr)
        return !!Ec(aa, b, c, d, g, t)
      }
    m.prototype.SkipAttributeTransform = m.prototype.SkipAttributeTransform =
      function (b) {
        var c = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        Fc(c, b)
      }
    m.prototype.GetEncodedGeometryType_Deprecated =
      m.prototype.GetEncodedGeometryType_Deprecated = function (b) {
        var c = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        return Gc(c, b)
      }
    m.prototype.DecodeBufferToPointCloud =
      m.prototype.DecodeBufferToPointCloud = function (b, c) {
        var d = this.ptr
        b && 'object' === typeof b && (b = b.ptr)
        c && 'object' === typeof c && (c = c.ptr)
        return B(Hc(d, b, c), C)
      }
    m.prototype.DecodeBufferToMesh = m.prototype.DecodeBufferToMesh = function (
      b,
      c,
    ) {
      var d = this.ptr
      b && 'object' === typeof b && (b = b.ptr)
      c && 'object' === typeof c && (c = c.ptr)
      return B(Ic(d, b, c), C)
    }
    m.prototype.__destroy__ = m.prototype.__destroy__ = function () {
      Jc(this.ptr)
    }
    ;(function () {
      function b() {
        a.ATTRIBUTE_INVALID_TRANSFORM = Kc()
        a.ATTRIBUTE_NO_TRANSFORM = Lc()
        a.ATTRIBUTE_QUANTIZATION_TRANSFORM = Mc()
        a.ATTRIBUTE_OCTAHEDRON_TRANSFORM = Nc()
        a.INVALID = Oc()
        a.POSITION = Pc()
        a.NORMAL = Qc()
        a.COLOR = Rc()
        a.TEX_COORD = Sc()
        a.GENERIC = Tc()
        a.INVALID_GEOMETRY_TYPE = Uc()
        a.POINT_CLOUD = Vc()
        a.TRIANGULAR_MESH = Wc()
        a.DT_INVALID = Xc()
        a.DT_INT8 = Yc()
        a.DT_UINT8 = Zc()
        a.DT_INT16 = $c()
        a.DT_UINT16 = ad()
        a.DT_INT32 = bd()
        a.DT_UINT32 = cd()
        a.DT_INT64 = dd()
        a.DT_UINT64 = ed()
        a.DT_FLOAT32 = fd()
        a.DT_FLOAT64 = gd()
        a.DT_BOOL = hd()
        a.DT_TYPES_COUNT = id()
        a.OK = jd()
        a.DRACO_ERROR = kd()
        a.IO_ERROR = ld()
        a.INVALID_PARAMETER = md()
        a.UNSUPPORTED_VERSION = nd()
        a.UNKNOWN_VERSION = od()
      }
      va ? b() : oa.unshift(b)
    })()
    if ('function' === typeof a.onModuleParsed) a.onModuleParsed()
    a.Decoder.prototype.GetEncodedGeometryType = function (b) {
      if (b.__class__ && b.__class__ === a.DecoderBuffer)
        return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b)
      if (8 > b.byteLength) return a.INVALID_GEOMETRY_TYPE
      switch (b[7]) {
        case 0:
          return a.POINT_CLOUD
        case 1:
          return a.TRIANGULAR_MESH
        default:
          return a.INVALID_GEOMETRY_TYPE
      }
    }
    return n.ready
  }
})()
'object' === typeof exports && 'object' === typeof module
  ? (module.exports = DracoDecoderModule)
  : 'function' === typeof define && define.amd
    ? define([], function () {
        return DracoDecoderModule
      })
    : 'object' === typeof exports &&
      (exports.DracoDecoderModule = DracoDecoderModule)
